shell 等待执行完成 |
您所在的位置:网站首页 › shell 等待执行完成 › shell 等待执行完成 |
Shell并没有严格意义上的多进程,但是实际工作中,也会遇到需要并行处理的事物,我们可以尝试用下面的方法,使用shell来启动多个进程来最大限度的利用CPU性能。 ![]() 假如有6个任务需要并行处理,每个任务大概需要2秒钟。 按照平常的顺序执行的shell写法如下: #!/bin/bashdatefor i in `seq 1 6`do{ echo "sleep 2" sleep 2}donedate输出的结果一共耗时2 x 6=12秒: 2019年 2月18日 星期一 21时52分57秒 CSTsleep 2sleep 2sleep 2sleep 2sleep 2sleep 22019年 2月18日 星期一 21时53分09秒 CST接着,我们使用&和wait关键字,把上面的代码改成多进程的形式: #!/bin/bashdatefor i in `seq 1 6`do{ echo "sleep 2" sleep 2}&donewaitdate输出的结果仅仅耗时2秒钟,多进程的形式确实让程序的效率提高了不少: 2019年 2月18日 星期一 21时55分15秒 CSTsleep 2sleep 2sleep 2sleep 2sleep 2sleep 22019年 2月18日 星期一 21时55分17秒 CST上面多进程主要是在for循环中,对每个进程使用&符号进行后台处理,而不用等待当前进程结束再继续执行下一个,但是为了确保每个进程都执行完成,最后一定要使用wait关键字,用来确保每一个子进程都执行完成。这样的写法,可以大大的提高多个进程并发执行的效率,对于可以同时执行的批量任务,可以用多进程的写法来提高效率。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |